package com.fourth.fronted.service;

import com.fourth.dto.OrdersDto;
import com.fourth.entity.CartItem;
import com.fourth.entity.Orders;
import org.apache.ibatis.annotations.Param;
import com.fourth.entity.Orders;


import java.util.List;

public interface OrdersService {



    /**
     * 根据用户id和订单状态oStatus分类查询显示订单
     * @param oUserId   用户id
     * @param oStatus   订单状态
     * @return
     */
    public List<OrdersDto> selectOStatusOrders(Integer oUserId, Integer oStatus);

    /**
     * 根据订单号修改修改订单状态---》取消订单2
     * @param oNo
     * @return
     */
    Boolean updateOStatusOrders(String oNo);

    /**
     * 根据订单号查询订单信息
     * @param oNo
     * @return
     */
    List<Orders> selectOrdersByONo(String oNo);

    /**
     * 根据订单号查询订单信息
     * @param oNo
     * @return
     */
    Orders selectOrderByONo(String oNo);


    /**
     * 未支付订单已过期 改变状态3已过期
     * @param oNo 订单编号
     * @return
     */
    Integer updateOrdersByoNo(String oNo);

    /**
     *定时任务     得到时间差    如果RabbitMq服务出了问题（服务器坏了）
     *      重启后可以获取订单的时间跟当前的时间进行对比
     * @return
     */
    List<Orders> selectExpireOrders();


    int insertOrder(Orders orders);

    int delAllCartByUid(Integer uId);


    /**
     * 支付成功后更改订单状态
     * @param oNo
     * @return
     */
    int changOrderStatus( String oNo);


    int insertOrderAndAddress(Integer oAddress,String oNo);

    List<Orders> selectOrdersByUid(Integer uId);
}
